// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'

// 配置MintUI
import MintUI from 'mint-ui'
// 引入css
import 'mint-ui/lib/style.css'
// 引入自己的css
import './assets/css/global.css'
// 引入提示图标的js和css
import './assets/img/ttf/iconfont.css'

//引入自己的ul和li组件
import MyUL from '@/components/Common/MyUL'
import MyLI from '@/components/Common/MyLI'
import NavBar from '@/components/Common/NavBar'
import Comment from '@/components/Common/Comment'
import MySwipe from '@/components/Common/MySwipe'

// 注册全局组件
Vue.component(MyUL.name,MyUL)
Vue.component(MyLI.name,MyLI)
// 导航栏
Vue.component(NavBar.name,NavBar)
// 评论区
Vue.component(Comment.name,Comment)
// 轮播图
Vue.component(MySwipe.name,MySwipe)
//全局组件结束

//定义moment全局日期过滤器
import Moment from 'moment'
// 设置中文显示
Moment.locale('zh-cn')
// {{ 'xxx' | convertTime('YYYY-MM-DD') }}
// {{ 'xxx' | convertTime('YYYY年MM月DD日') }}
Vue.filter('convertTime',function(data,formatStr){
	return Moment(data).format(formatStr);
})
/*相对时间，实现评论在xx秒之前的功能*/
Vue.filter('relativeTime',function(previousTime) {
	return Moment(previousTime).fromNow();
})
// 处理字符串过长的过滤器
Vue.filter('convertStr',function(str,count) {
  return str.substring(0,count) + '...';
})


// 图片预览插件
import VuePreview from 'vue-preview'
Vue.use(VuePreview)

// 配置全局工具类
import Utils from '@/components/Common/Utils'
Vue.use(Utils)

// Vuex配置数据状态管理器
import numModule from '@/modules/numModule'
import Vuex from 'vuex'
Vue.use(Vuex)
// 创建store
let store = new Vuex.Store({
  modules: {
    numModule: numModule
  }
});

// 图片懒加载
import VueLazyload from 'vue-lazyload'
Vue.use(VueLazyload, {
    preLoad: 1.3, // 1.3屏
    loading: require('./assets/img/index/loading.gif'),//加载中图片，一定要有，不然会一直重复加载占位图
    error: require('./assets/img/index/error.jpg'), //加载失败图片
    attempt: 1
})

// 配置axios
import Axios from 'axios'
//Axios.defaults.baseURL = 'https://bing.ioliu.cn/v1'
Vue.prototype.$axios = Axios


// 配置请求拦截器，显示loading图标
Axios.interceptors.request.use(function(config){
    MintUI.Indicator.open({
        text:'玩命加载中...'
    })
    return config;
})
// 配置响应拦截器，关闭loading图标
Axios.interceptors.response.use(function(response){
    // response.config 类似上面config
    MintUI.Indicator.close();
    return response;
})

// 安装插件 注册全局组件及挂载属性
Vue.use(MintUI)

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>'
})
